#include <stdio.h>

int main()
{
/*
    // const int a = 66;
    int const a = 66;

    a = 88;

    printf("a = %d\n", a);
*/

    
/*    
    // 情况一
    int a = 666;

    // const 修饰的是 *
    // 最终，会导致 *p = xxxx; 不可用
    // 切记，此时指针 p 跟 const 没有任何关系
    // int const* p = &a;
    const int* p = &a;
    
    // *p = 8888;   ---> error
    p = NULL;

    printf(" p = %p\n", p);

*/

/*    
    // 情况二
    int a = 123;
    
    // const 修饰的是 p，跟 * 无关
    // 最终导致指针 p 只能指向变量 a
    int* const p = &a;

    *p = 6666;
    printf("*p = %d\n", *p);
    printf("a = %d\n", a);

    // p = NULL;  --> error
*/


    // 情况三
    int a = 1234;

    const int* const p = &a;

    a = 666;

    

    return 0;
}

